//
// Created by gejingguo on 16-3-22.
//


#include "Redis.h"

#include <iostream>

#define CHECK_REDIS_ERR(msg) if(err){std::cout<<msg<<","<<err->GetCode()<<","<<err->GetMsg()<<std::endl; return -1;}

int main(int argc, const char* argv[]) {
    Redis redis;
    ErrorPtr err = redis.Init("127.0.0.1", 6379, 800);
    CHECK_REDIS_ERR("init");

    bool isExists = false;
    err = redis.IsExists("test_key", isExists);
    CHECK_REDIS_ERR("isexists test_key");
    std::cout<<"key: test_key exists:"<<isExists<<std::endl;

    err = redis.Set("test_key", "test valued fdfj.");
    CHECK_REDIS_ERR("set test_key");
    std::cout<<"set test_key ok."<<std::endl;

    isExists = false;
    err = redis.IsExists("test_key", isExists);
    CHECK_REDIS_ERR("isexists test_key");
    std::cout<<"key: test_key exists:"<<isExists<<std::endl;

    std::string value;
    err = redis.Get("test_key", value);
    CHECK_REDIS_ERR("get test_key");
    std::cout<<"get test_key ok, value:"<<value<<std::endl;

    err = redis.Del("test_key");
    CHECK_REDIS_ERR("del test_key");
    std::cout<<"del test_key ok."<<std::endl;

    value.clear();
    err = redis.Get("test_key", value);
    //CHECK_REDIS_ERR("get test_key");
    if(err) {
        std::cout<<"get test_key, "<<err->GetCode()<<","<<err->GetMsg()<<std::endl;
    }

    err = redis.Set("test_key", "test valued fdfj.");
    CHECK_REDIS_ERR("set test_key");
    std::cout<<"set test_key ok."<<std::endl;

    value.clear();
    err = redis.Get("test_key", value);
    CHECK_REDIS_ERR("get test_key");
    std::cout<<"get test_key ok, value:"<<value<<std::endl;

    return 0;
}